﻿#pragma warning disable IDE1006
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WUDI.ECharts
{
	/// <summary>
	/// ECharts 4 开始支持了 数据集（dataset）组件用于单独的数据集声明，从而数据可以单独管理，被多个组件复用，并且可以自由指定数据到视觉的映射
	/// <para>
	/// 这在不少场景下能带来使用上的方便
	/// </para>
	/// <para>
	/// 关于 dataset 的详情，请参见教程
	/// </para>
	/// <para>
	/// tutorial.html#%E4%BD%BF%E7%94%A8%20dataset%20%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE
	/// </para>
	/// </summary>
	public class Dataset
	{

		/// <summary>
		/// 组件 ID。默认不指定。指定则可用于在 option 或者 API 中引用组件。
		/// </summary>
		public dynamic id { get; set; } 

		/// <summary>
		/// 关于 dataset 的详情，请参见教程
		/// <para>
		/// tutorial.html#%E4%BD%BF%E7%94%A8%20dataset%20%E7%AE%A1%E7%90%86%E6%95%B0%E6%8D%AE
		/// </para>
		/// <para>Array/Object</para>
		/// </summary>
		public dynamic source { get; set; } 

		/// <summary>
		/// 使用 dimensions 定义 series.data 或者 dataset.source 的每个维度的信息
		/// <para>
		/// 注意
		/// </para>
		/// <para>
		/// 如果使用了 dataset.source
		/// </para>
		/// <para>
		/// #dataset.source 的第一行/列中给出 dimension 名称
		/// </para>
		/// <para>
		/// 于是就不用在这里指定 dimension
		/// </para>
		/// <para>
		/// 但是，如果在这里指定了 dimensions，那么 ECharts 不再会自动从 dataset.source 的第一行/列中获取维度信息
		/// </para>
		/// <para>
		/// string，如 someName，等同于 {name: someName}
		/// </para>
		/// <para>
		/// name: string
		/// </para>
		/// <para>
		/// type: string，支持
		/// </para>
		/// <para>
		/// number，默认，表示普通数据
		/// </para>
		/// <para>
		/// ordinal，对于类目、文本这些 string 类型的数据，如果需要能在数轴上使用，须是 ordinal 类型
		/// </para>
		/// <para>
		/// ECharts 默认会自动判断这个类型
		/// </para>
		/// <para>
		/// 但是自动判断也是不可能很完备的，所以使用者也可以手动强制指定
		/// </para>
		/// <para>
		/// float，即 Float64Array
		/// </para>
		/// <para>
		/// <see href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array"/>
		/// </para>
		/// <para>
		/// int，即 tooltip 会横排显示，且只显示数值没有维度名称可显示
		/// </para>
		/// </summary>
		public dynamic dimensions { get; set; } 

		/// <summary>
		/// null/undefine
		/// <para>
		/// 默认，自动探测
		/// </para>
		/// <para>
		/// true
		/// </para>
		/// <para>
		/// 第一行/列是维度名信息
		/// </para>
		/// <para>
		/// false
		/// </para>
		/// <para>
		/// 第一行/列直接开始是数据
		/// </para>
		/// <para>
		/// 注意
		/// </para>
		/// <para>
		/// “第一行/列” 的意思是，如果 series.seriesLayoutBy
		/// </para>
		/// <para>
		/// #series.seriesLayoutBy 设置为 column（默认值），则取第一行，如果 series.seriesLayoutBy 设置为 row，则取第一列
		/// </para>
		/// </summary>
		public dynamic sourceHeader { get; set; } 

	}
}